package shm.capaDatos.administradores;

import java.util.List;

import javax.ejb.Local;

import shm.capaDatos.vo.CapacidadComunicacionalVO;
import shm.capaDatos.vo.ConocimientoTecnologicoVO;
import shm.capaDatos.vo.PersonaVO;
import shm.capaDatos.vo.StakeholderVO;
import shm.capaDatos.vo.UsuarioVO;
import shm.excepciones.BuscarEntidadException;
import shm.excepciones.EliminarEntidadException;
import shm.excepciones.EntidadesHuerfanasException;
import shm.excepciones.GuardarEntidadException;

@Local
public interface AdministradorPersonas {
	public PersonaVO guardar(PersonaVO persona,StakeholderVO stakeholderEnModificacion, UsuarioVO usuarioLogueado) throws GuardarEntidadException;
	public List<PersonaVO> buscarHistorial(PersonaVO persona, UsuarioVO usuarioLogueado) throws BuscarEntidadException;
	List<PersonaVO> buscarLista(PersonaVO persona, UsuarioVO usuarioLogueado) throws BuscarEntidadException;
	public void eliminar(PersonaVO persona, UsuarioVO usuarioLogueado) throws EliminarEntidadException, EntidadesHuerfanasException ;
	public List<CapacidadComunicacionalVO> obtenerCapacidadesComunicacionales();
	public List<ConocimientoTecnologicoVO> obtenerConocimientosTecnologicos();
	public ConocimientoTecnologicoVO obtenerConocimientoTecnologico(ConocimientoTecnologicoVO conocimientoTecnologico);
	public CapacidadComunicacionalVO obetenerCapacidadComunicacional(CapacidadComunicacionalVO capacidadComunicacional);
	public PersonaVO buscar(PersonaVO persona, UsuarioVO usuarioLogueado)
			throws BuscarEntidadException;
	public boolean personaHuerfana(PersonaVO persona);
	
	
}
